import { IPSMDAjaxControl } from '../ipsmdajax-control';
import { IPSChartAngleAxis } from './ipschart-angle-axis';
import { IPSChartCoordinateSystem } from './ipschart-coordinate-system';
import { IPSChartDataSet } from './ipschart-data-set';
import { IPSChartDataSetGroup } from './ipschart-data-set-group';
import { IPSChartGrid } from './ipschart-grid';
import { IPSChartParallel } from './ipschart-parallel';
import { IPSChartParallelAxis } from './ipschart-parallel-axis';
import { IPSChartPolar } from './ipschart-polar';
import { IPSChartRadar } from './ipschart-radar';
import { IPSChartRadiusAxis } from './ipschart-radius-axis';
import { IPSChartSingle } from './ipschart-single';
import { IPSChartSingleAxis } from './ipschart-single-axis';
import { IPSChartXAxis } from './ipschart-xaxis';
import { IPSChartYAxis } from './ipschart-yaxis';
import { IPSLanguageRes } from '../../res/ipslanguage-res';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSChart
 */
export interface IPSChart extends IPSMDAjaxControl {
  /**
   * 坐标系统类型
   * @description 值模式 [实体图表坐标系统] {XY：直角坐标系、 POLAR：极坐标系、 RADAR：雷达坐标系、 PARALLEL：平行坐标系、 SINGLE：单轴坐标系、 CALENDAR：日历坐标系、 MAP：地图坐标系、 NONE：无坐标系 }
   * @type {( string | 'XY' | 'POLAR' | 'RADAR' | 'PARALLEL' | 'SINGLE' | 'CALENDAR' | 'MAP' | 'NONE')}
   */
  coordinateSystem: string | 'XY' | 'POLAR' | 'RADAR' | 'PARALLEL' | 'SINGLE' | 'CALENDAR' | 'MAP' | 'NONE';

  /**
   * 无值显示内容
   * @type {string}
   */
  emptyText: string;

  /**
   * 无值内容语言资源
   *
   * @type {IPSLanguageRes}
   */
  getEmptyTextPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 无值内容语言资源
   *
   * @type {IPSLanguageRes}
   */
  get emptyTextPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 无值内容语言资源（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getEmptyTextPSLanguageResMust(): IPSLanguageRes;

  /**
   * angleAxis集合
   *
   * @type {IPSChartAngleAxis[]}
   */
  getPSChartAngleAxises(): IPSChartAngleAxis[] | null;

  /**
   * angleAxis集合
   *
   * @type {IPSChartAngleAxis[]}
   */
  get psChartAngleAxises(): IPSChartAngleAxis[] | null;

  findPSChartAngleAxis(objKey: any): IPSChartAngleAxis | null;

  /**
   * 图表坐标系集合
   *
   * @type {IPSChartCoordinateSystem[]}
   */
  getPSChartCoordinateSystems(): IPSChartCoordinateSystem[] | null;

  /**
   * 图表坐标系集合
   *
   * @type {IPSChartCoordinateSystem[]}
   */
  get psChartCoordinateSystems(): IPSChartCoordinateSystem[] | null;

  findPSChartCoordinateSystem(objKey: any): IPSChartCoordinateSystem | null;

  /**
   * 数据集分组集合
   *
   * @type {IPSChartDataSetGroup[]}
   */
  getPSChartDataSetGroups(): IPSChartDataSetGroup[] | null;

  /**
   * 数据集分组集合
   *
   * @type {IPSChartDataSetGroup[]}
   */
  get psChartDataSetGroups(): IPSChartDataSetGroup[] | null;

  findPSChartDataSetGroup(objKey: any): IPSChartDataSetGroup | null;

  /**
   * 数据集集合
   *
   * @type {IPSChartDataSet[]}
   */
  getPSChartDataSets(): IPSChartDataSet[] | null;

  /**
   * 数据集集合
   *
   * @type {IPSChartDataSet[]}
   */
  get psChartDataSets(): IPSChartDataSet[] | null;

  findPSChartDataSet(objKey: any): IPSChartDataSet | null;

  /**
   * 直角坐标表格集合
   *
   * @type {IPSChartGrid[]}
   */
  getPSChartGrids(): IPSChartGrid[] | null;

  /**
   * 直角坐标表格集合
   *
   * @type {IPSChartGrid[]}
   */
  get psChartGrids(): IPSChartGrid[] | null;

  findPSChartGrid(objKey: any): IPSChartGrid | null;

  /**
   * paralleAxis集合
   *
   * @type {IPSChartParallelAxis[]}
   */
  getPSChartParallelAxises(): IPSChartParallelAxis[] | null;

  /**
   * paralleAxis集合
   *
   * @type {IPSChartParallelAxis[]}
   */
  get psChartParallelAxises(): IPSChartParallelAxis[] | null;

  findPSChartParallelAxis(objKey: any): IPSChartParallelAxis | null;

  /**
   * 平行坐标部件集合
   *
   * @type {IPSChartParallel[]}
   */
  getPSChartParallels(): IPSChartParallel[] | null;

  /**
   * 平行坐标部件集合
   *
   * @type {IPSChartParallel[]}
   */
  get psChartParallels(): IPSChartParallel[] | null;

  findPSChartParallel(objKey: any): IPSChartParallel | null;

  /**
   * 极坐标部件集合
   *
   * @type {IPSChartPolar[]}
   */
  getPSChartPolars(): IPSChartPolar[] | null;

  /**
   * 极坐标部件集合
   *
   * @type {IPSChartPolar[]}
   */
  get psChartPolars(): IPSChartPolar[] | null;

  findPSChartPolar(objKey: any): IPSChartPolar | null;

  /**
   * 雷达部件集合
   *
   * @type {IPSChartRadar[]}
   */
  getPSChartRadars(): IPSChartRadar[] | null;

  /**
   * 雷达部件集合
   *
   * @type {IPSChartRadar[]}
   */
  get psChartRadars(): IPSChartRadar[] | null;

  findPSChartRadar(objKey: any): IPSChartRadar | null;

  /**
   * radiusAxis集合
   *
   * @type {IPSChartRadiusAxis[]}
   */
  getPSChartRadiusAxises(): IPSChartRadiusAxis[] | null;

  /**
   * radiusAxis集合
   *
   * @type {IPSChartRadiusAxis[]}
   */
  get psChartRadiusAxises(): IPSChartRadiusAxis[] | null;

  findPSChartRadiusAxis(objKey: any): IPSChartRadiusAxis | null;

  /**
   * singleAxis集合
   *
   * @type {IPSChartSingleAxis[]}
   */
  getPSChartSingleAxises(): IPSChartSingleAxis[] | null;

  /**
   * singleAxis集合
   *
   * @type {IPSChartSingleAxis[]}
   */
  get psChartSingleAxises(): IPSChartSingleAxis[] | null;

  findPSChartSingleAxis(objKey: any): IPSChartSingleAxis | null;

  /**
   * 单一坐标部件集合
   *
   * @type {IPSChartSingle[]}
   */
  getPSChartSingles(): IPSChartSingle[] | null;

  /**
   * 单一坐标部件集合
   *
   * @type {IPSChartSingle[]}
   */
  get psChartSingles(): IPSChartSingle[] | null;

  findPSChartSingle(objKey: any): IPSChartSingle | null;

  /**
   * xAxis集合
   *
   * @type {IPSChartXAxis[]}
   */
  getPSChartXAxises(): IPSChartXAxis[] | null;

  /**
   * xAxis集合
   *
   * @type {IPSChartXAxis[]}
   */
  get psChartXAxises(): IPSChartXAxis[] | null;

  findPSChartXAxis(objKey: any): IPSChartXAxis | null;

  /**
   * yAxis集合
   *
   * @type {IPSChartYAxis[]}
   */
  getPSChartYAxises(): IPSChartYAxis[] | null;

  /**
   * yAxis集合
   *
   * @type {IPSChartYAxis[]}
   */
  get psChartYAxises(): IPSChartYAxis[] | null;

  findPSChartYAxis(objKey: any): IPSChartYAxis | null;
}
